package com.wcsy.myblog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wcsy.myblog.entity.Article;
import com.wcsy.myblog.entity.ArticlePage;
import com.wcsy.myblog.entity.Label;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface IArticleService extends IService<Article> {
    List<Article> selectArticle(String name);//查出用户的文章信息
    Map<String, Object> selectList();//查出所有文章的信息 显示在主页
    List<Article> select(String name);//查询某一个用户的所有文章信息，包含文章类型 文章标签
    void insertArticle(@Param("article") Article article,
                       Label label,
                       String typeName,String typeKidName) throws Exception;//添加文章
    Article serlectOneArticle(Integer id); //查询某一篇文章的信息
    /**
     * @apiNote 查询总的文章在首页进行分页
     * @param pageNo 当前页数
     * @return
     */
    ArticlePage<Article> PageSelect(int pageNo);

    /**
     * @apiNote 查询单个用户的文章  进行分页
     * @param pageNo 当前页数
     * @param userId 用户id
     */
    ArticlePage<Article> PageUserSelect(int pageNo,int userId);
    List<Article> SelectListCollect(int userId);
    boolean updateArticle(@Param("article")Article article);
    void updateNublike(int articleID,boolean toLike) throws Exception;
    void insertCollect(int articleId);
    void updatePageviews(int articleId);
    void removeArticle(int id);
}
